package com.igeek.boot.config;

import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.lang.reflect.Method;
import java.util.Arrays;

/**
 * @Author fengqq
 * @Description TODO
 * @Date 2024/9/9  10:53
 */
//@Configuration
public class CacheConfig {

    //自定义key的生成器
    @Bean
    public KeyGenerator keyGenerator(){
        return new KeyGenerator(){
            /**
             *
             * @param target 目标对象  ItemsService
             * @param method 执行的目标方法  findOne
             * @param params 执行的目标方法的形参列表 Integer id
             * @return 缓存中使用的key的规则
             */
            @Override
            public Object generate(Object target, Method method, Object... params) {
                return target.getClass().getName()+"-"+method.getName()+"-"+ Arrays.toString(params);//com.igeek.boot.service.ItemsServiceImpl.findOne-1
            }
        };
    }
}
